package com.ywk.springCore.lifeCycle.annScanner;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
import org.springframework.core.type.AnnotationMetadata;

import java.util.Map;

/**
 *
 * ImportBeanDefinitionRegistrar让我们自己注册 bean 到 spring ioc 容器中
 * （只要是想往ioc容器中创建bean，都可以考虑使用ImportBeanDefinitionRegistrar）
 * @Author zbh
 * @Date 2023/5/8
 */
@Slf4j
public class MyImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar {
    @Override
    public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
        //获取注解属性值
        Map<String, Object> myAnn = importingClassMetadata.getAnnotationAttributes(MyAnn.class.getName());
        log.info("----------------------------------");
        for (Map.Entry<String, Object> entry : myAnn.entrySet()) {
            log.info("MyAnn：{} = {}",entry.getKey(),entry.getValue());

        }
    }
}
